
        <html>
			<head>
			     <title>黑狐木马最新变种——“肥兔”详细分析 - 腾讯电脑管家</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/7117">http://drops.wooyun.org/papers/7117</a></h1>
				
      <p>
        <h1>0x00 背景</h1>

<hr />

<p>近期，腾讯反病毒实验室拦截到了大量试图通过替换windows系统文件来感染系统的木马，经过回溯分析，发现其主要是通过伪装成“37游戏在线”等安装包进行推广传播，感染量巨大。该木马的主要功能是锁定浏览器主页和推广流氓软件，木马管家已经全面拦截和查杀。同时该木马与之前的“黑狐”木马在上报数据包、代码风格、服务器分布等有极大的相似性，可以确定是同一作者所为。而通过该木马多个样本的pdb路径，我们得知该木马项目名称为“肥兔”。</p>

<h1>0x01 功能简介</h1>

<hr />

<p>“肥兔”木马会通过多种方式向下推广，日均推广量10W+，推广后会通过替换系统文件而长期驻留在系统中，对系统稳定性和用户的隐私安全造成极大的威胁，目前该木马主要是通过流氓推广和浏览器锁主页来实现盈利，如果你的浏览器主页被改成www.2345.com/?32420，那么很可能就中了“肥兔”木马。</p>

<!--more-->

<p><img src="http://static.wooyun.org//drops/20150714/2015071404061678370image002.gif" alt="enter image description here" /></p>

<p>“肥兔”木马功能示意图</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144568580.gif" alt="enter image description here" /></p>

<p>“肥兔”木马模块分工示意图</p>

<h1>0x02 木马作者背景分析</h1>

<hr />

<p>通过反查域名<code>tianxinli.org</code>、<code>3gfetion.com</code>得到注册信息如下：</p>

<pre><code>域名：tianxinli.org  
域名ID： D176563201-LROR
注册时间： 2015-06-15T06:27:28Z
更新时间： 2015-06-15T06:27:28Z
过期时间： 2016-06-15T06:27:28Z
域名所有者：yu ying
注册人邮件：<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="3d5f5245545c5245545c520c0405057d0c0b0e135e5250">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>

域名： 3GFETION.COM
域名ID: 1938775105_DOMAIN_COM-VRSN
注册时间: 2015-06-15T07:23:07Z
更新时间: 2015-06-15T07:23:07Z
域名所有者: yu ying
注册人邮件: <a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="33515c4b5a525c4b5a525c020a0b0b730205001d505c5e">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>
</code></pre>

<p>两个域名是同一天注册，而且是同一个人持有。可以基本判定，网站持有者为病毒发布者。再通过对注册邮箱的反查，可以看到这个组织持有很多域名，并且，故意使持有者姓名不同，来对抗社工。</p>

<p>将所有<code><a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="94f6fbecfdf5fbecfdf5fba5adacacd4a5a2a7baf7fbf9">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script></code>注册的邮箱的手机号整理后，发现只指向两个号码。进而，通过手机号可以查到该组织成员的一些信息：</p>

<pre><code>陈*   QQ：383******   865*****    Tel：15869******   18067******    Email：<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="2a49424f44006a1b181c04494547">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>    <a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="295003694448404507">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>**.com
刘*   QQ：304******   185******   Tel：15957******   15869******    15957******  
</code></pre>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144592946.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144622743.png" alt="enter image description here" /></p>

<p>在QQ上发现工作邮箱，顺手去看了下他们公司官网。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144750538.png" alt="enter image description here" /></p>

<p>公司域名是由张XX注册的，就查了下，结果：</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144725202.png" alt="enter image description here" /></p>

<p>可以看出，该公司是有过前科的，而且，刚好是做推广的，不得不怀疑下。</p>

<p>接下来，就不挖作者信息了，看看统计的后台，扫了下网站，发现源码泄漏。拿下源码看了看整站目录结构、命名并不那么规范。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144760733.png" alt="enter image description here" /></p>

<p>tj.php是木马要访问的，跟进去发现，它每天都会对推广的数量进行统计。审计源码后，发现，其对要insert的数据没有做过滤处理。于是构造payload，用sqlmap跑起来。得到数据库表信息如下：</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144764314.png" alt="enter image description here" /></p>

<p>后台每天新建一张表来统计当天安装日志以及前一天的上线日志。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144737907.png" alt="enter image description here" /></p>

<p>随意Dump了其中一张表，看到一个惊人的安装数量：</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144715491.png" alt="enter image description here" /></p>

<p>从后台数据可以看出，该木马从15年5月11日开始推广，平均日推广量10万以上，在2015年7月11日达到了64万之多。</p>

<h1>0x03 详细技术分析</h1>

<hr />

<p><strong>3.1 setup_3l.exe文件分析</strong></p>

<pre><code>样本MD5：fc4631e59cf1cf3a726e74f062e25c2e  描述：37最新游戏在线
</code></pre>

<p>样本运行后下载了一张图片http://less.3gfetion.com/logo.png，该图片尾部附加了大量的二进制数据，将其解密后得到一个名为FeiTuDll.dll的文件，并在内存中加载执行。这也是“肥兔”木马名字的来源，以下是FeiTuDll.dll文件的属性信息，以及PDB路劲信息。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144812297.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144845172.png" alt="enter image description here" /></p>

<p><strong>3.2 FeiTuDll.dll 文件分析</strong></p>

<p>样本MD5：<code>a5b262da59a352b1c4470169183e094b</code> FeiTuDll.dll运行后，收集以下信息：</p>

<ol>
<li>通过int.dpool.sina.com.cn获取本机外网IP及归属地等信息</li>
<li>检测本机杀软安装情况：检测是否存在zhudongfangyu.exe等360系进程、QQPCTray.exe等管家系进程、kextray.exe等金山系进程；</li>
<li>检测本机是否为网吧机器：通过检测wanxiang.exe、yaoqianshu.exe等进程来判断是否是网吧机器；</li>
<li>本机MAC地址</li>
<li>本机操作系统版本</li>
</ol>

<p>收集完成后将信息提交到<code>http://count.tianxinli.org/player/tj.php</code></p>

<p>参数格式及说明如下：</p>

<pre><code>op=install （操作）
ri= （当前进程名）
mc= （MAC地址）
vs=1.0.0.1 （木马版本）
dq= （int.dpool.sina.com.cn返回的IP等信息）
sd= （杀毒软件情况：360SecurityGuard、QQhousekeep、KingSoft之一或组合）
os=（操作系统版本）
sc= （屏幕分辨率）
bar= （是否网吧 1：是 0：否）
tm= （当前时间戳）
key= （以上信息的MD5校验）
</code></pre>

<p>接收服务器返回的信息，判断是否含有“az”字符设置相应的标志，木马后台会根据提交的MAC信息判断此机器是否感染过，如果感染过则返回“az”，否则不返回任何信息。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144887970.png" alt="enter image description here" /></p>

<p>随后木马会下载“大天使之剑”的安装包到本地，并执行安装。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144812143.png" alt="enter image description here" /></p>

<p>安装完成后根据之前是否返回“az”还决定随后行为，如果返回“az”则退出进程，不再有其它行为；如果未返回“az”，则进行以下行为：判断当前操作系统版本是32位或64位加载不同的资源文件，最终在临时目录下释放tmp.exe和yrd.tmp，在windows目录下释放yre.tmp，并将yrd.tmp文件路劲作为参数执行tmp.exe。完成以上行为后判断系统文件是否已经替换成功，并负责关闭windows文件保护相关的警告窗口。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144843510.png" alt="enter image description here" /></p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144855185.png" alt="enter image description here" /></p>

<p><strong>3.3 tmp.exe 文件分析</strong></p>

<p>根据操作系统类型，首先删除dllcache目录中的Sens.dll或Cscdll.dll（x86）；然后用yrd.tmp替换system32目录中的Sens.dll或Cscdll.dll（x86）。</p>

<p><strong>3.4 yrd.tmp （Sens.dll、Cscdll.dll）文件分析</strong></p>

<p>捕捉到的其中几个广度较大的变种MD5如下：</p>

<pre><code>f749521e9e380ecefec833d440400827
8ccf78082effa9cd3eaffbeb2a04039f
4bf8a7fd3a91e47d816cab694834be65
a18d30fef0a73cce4131faf2726adfdb
8c10cc9cde85457b081ecf7cba997019
</code></pre>

<p>该文件的PDB信息如下：</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144891644.png" alt="enter image description here" /></p>

<p>该文件在系统启动时会被winlogon进程加载，其功能是解密%windir%\yre.tmp文件并保存为%windir%\svchost.exe，最后将其执行两次，即创建两个进程。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144963354.png" alt="enter image description here" /></p>

<p><strong>3.5 %WinDir%\svchost.exe文件分析</strong></p>

<p>该文件pdb信息如下：</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144973939.png" alt="enter image description here" /></p>

<p>该文件同时被执行两次，根据互斥量来进行如下不同的分工：</p>

<p>1、先被执行的进程行为：</p>

<ol>
<li>释放LKS19.tmp驱动文件并加载</li>
<li>创建名为sysPipa的管道接收命令</li>
<li>与驱动进行通信，将命令传递给驱动</li>
</ol>

<p>2、后被执行的进程行为：</p>

<ol>
<li>获取本机各种信息发送到http://count.tianxinli.org/player/tj.php，参数格式与FeiTuDll.dll相同。</li>
<li>查找杀软进程，并将pid传递给sysPipa管道，用于结束杀软进程</li>
<li>从以下地址下载文件到本地执行，在本地存储为SVCH0ST.exe http:<a class="__cf_email__" href="/cdn-cgi/l/email-protection" data-cfemail="fdd2d2998a8585d39f948795949599d39e9290d2bdb8becdcebec8b9ccb8c4cfbec8b8c9bfbcc9b9bbbbcbbeccbfc8cdcacacccbc9c9c4ca">[email&#160;protected]</a><script data-cfhash='f9e31' type="text/javascript">/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script></li>
<li>关闭UAC</li>
</ol>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144933741.png" alt="enter image description here" /></p>

<p><strong>3.6 驱动文件LKS19.tmp分析</strong></p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144944570.png" alt="enter image description here" /></p>

<p>该驱动文件具有以下功能：</p>

<ol>
<li>注册CreateProcess回调，通过给浏览器进程添加命令行的方式实现主页锁定</li>
<li>根据命令修改锁定的主页地址</li>
<li>根据命令，结束指定的进程</li>
<li>根据命令，hook指定的SSDT表函数</li>
</ol>

<p><strong>3.7 SVCH0ST.exe文件分析：</strong></p>

<p>该文件PDB信息如下：该模块的功能主要是通过百度有钱推广获利</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144966345.png" alt="enter image description here" /></p>

<p>推广的软件列表如下：</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144915704.png" alt="enter image description here" /></p>

<h1>0x04 查杀方式</h1>

<hr />

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144980399.png" alt="enter image description here" /></p>

<p>对于安装了电脑管家的用户，无需做任何处理，管家已经能够精准拦截该木马及其变种。</p>

<p><img src="http://static.wooyun.org//drops/20150714/2015071404144927633.png" alt="enter image description here" /></p>

<p>对于未安装管家而感染了该木马的用户，安装管家后使用闪电杀毒可完美清除该木马。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          